package com.yidu.t299.service.zzy;

import com.yidu.t299.domain.zzy.*;
import org.apache.ibatis.annotations.Param;

import java.lang.Class;
import java.util.List;

/**
 * @Author:周子怡
 * @Date:2023/03/16/13:13
 * @Description:
 */
public interface SyllaBusBiz {

    /**
     * 按主键查询
     * @param syllabusId 主键
     * @return 成绩对象
     */
    Syllabus selectByPrimaryKey(Integer syllabusId);

    /**
     * 按条件分页查询创建数据集合
     *
     * @param rows      每页的行数
     * @param page      页码
     * @param condition 条件参数
     * @return 成绩对象集合
     */
    List<Syllabus> selectByPage(int rows, int page, String condition);

    /**
     * 按条件查询grade表中数据行数
     *
     * @param condition 条件参数
     * @return 数据行数
     */
    int selectCount(String condition);


    /**
     * 根据实体对象生成条件字符串
     * @param syllabus 成绩对象
     * @return 条件字符串
     */
    String getCondition(Syllabus syllabus);

    // 如下是扩展的方法，主要在添加/修改之前进行一些查询操作，比如说根据名称查询id等等...

    /**
     * 针对学员表(student_manage)进行操作
     * 根据学员名称查找其编号
     * @param className 学员名称
     * @return 影响的行数(>1:成功)
     */
    int selectByClassName(String className);

    /**
     * 针对课程表(lesson)进行操作
     * 根据课程名称查找其编号
     * @param classRoomName 课程名称
     * @return 影响的行数(>1:成功)
     */
    int selectByClassRoomName(String classRoomName);

    /**
     * 针对课程表(lesson)进行操作
     * 根据课程名称查找其编号
     * @param lessonName 课程名称
     * @return 影响的行数(>1:成功)
     */
    int selectByLessonName(@Param("lessonName") String lessonName);

    // 如下是获取下拉框数据的方法...

    /**
     * 得到所有校区信息
     * @return 校区对象集合
     */
    List<Class> selectAllGetClass();

    /**
     * 得到所有课程信息
     * @return 课程对象集合
     */
    List<Lesson> selectAllGetLesson();

    /**
     * 得到所有课程信息
     * @return 课程对象集合
     */
    List<ClassRoom> selectAllGetClassRoom();

    /**
     * 得到所有课程信息
     * @return 课程对象集合
     */
    List<Record> selectAllGetRecord();

    int selectByRecordName(String lessonName);
}
